The invention relates generally to autonomic computing and more particularly to a recovery technique for a computing device.
Laptop computers, PDA's and mobile phones along with improved telecommunications have enabled mobile computing. There are also embedded computing devices in many products. With both embedded computing devices and certain types of mobile computing devices, the user may not have a direct interface to enter commands or learn the status of the computing device.
Mobile computing devices, despite their limited resource availability, offer a high level of functionality. A typical example is a mobile phone which comprises a camera, gaming software and PDA software. To provide this functionality, many software components and hardware components are required to operate and interact with each other. Inevitably hardware and software faults occur.
An IBM Tivoli (tm) program, using a centralized system, is known to perform fault monitoring and detection. In order for the Tivoli program to communicate with an application installed on a remote device, network connectivity is provided between the centralised system and an application located on the remote device. The centralised system periodically sends a message to the application located on the remote device. The centralised system waits for a response message. Receipt of the response message indicates whether the application is running. If the centralised system receives a “not responding” message, the centralised system can, under the guidance of an operator, perform some form of corrective action such as rebooting the device or applying a software fix.
A problem occurs when fault monitoring and maintenance need to be undertaken on a mobile computing device. A centralised system requires a constant network connection for prompt action; however, the mobile computing device may only be connected to a network for five minutes a day or for twenty minutes once a week. Consequently, a centralised fault monitoring model is unable to effectively and promptly support a mobile computing device.
An example of a mobile computing device can be found in U.S. Pat. No. 6,122,572. This patent discloses a programmable decision unit located in an unmanned vehicle which is capable of managing and controlling the execution of a mission by utilising a plurality of subsystems. The programmable decision unit includes a mission plan for accomplishing the execution of a mission. The programmable decision unit carries out its mission by following a pre-designed mission plan. A mission plan is downloaded before each mission commences. The mission plan allows for exceptional events to occur and corrective actions are taken based on the directives stated within the mission plan. Updates to the mission plan are carried out by applying a code fix to one or more mission plans. The mission plan is therefore a static entity and can only be updated by developing a new piece of software which replaces the existing plan. Installation of a software fix is not easy.
Therefore, it would be beneficial if the mobile computing device could take some form of corrective action itself without any assistance from a centralised system or a software fix is installed.
Accordingly, an object of the present invention is to improve the ability of a computing device to correct problems with itself.